From 805c7d12ce5cad221551ae4a2801d6297263b5fe Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=98yvind=20Kol=C3=A5s?= Date: Fri, 10 Nov 2017 10:34:57 +0100 Subject: [PATCH] extensions: protect gray unpremuls from gggl against division by 0.0 --- extensions/gggl-lies.c | 5 ++++- extensions/gggl.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/extensions/gggl-lies.c b/extensions/gggl-lies.c index b34f8ef..c08dccd 100644 --- a/extensions/gggl-lies.c +++ b/extensions/gggl-lies.c @@ -356,7 +356,10 @@ conv_gAF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, lon { float alpha = (*(float *) (src + 4)); - *(float *) dst = ((*(float *) src) / alpha); + if (alpha == 0.0f) + *(float *) dst = 0.0f; + else + *(float *) dst = ((*(float *) src) / alpha); dst += 4; src += 4; *(float *) dst = alpha; diff --git a/extensions/gggl.c b/extensions/gggl.c index 83352d2..d101bef 100644 --- a/extensions/gggl.c +++ b/extensions/gggl.c @@ -373,7 +373,10 @@ conv_gAF_gaF (const Babl *conversion,unsigned char *src, unsigned char *dst, lon { float alpha = (*(float *) (src + 4)); - *(float *) dst = ((*(float *) src) / alpha); + if (alpha == 0.0f) + *(float *) dst = 0.0f; + else + *(float *) dst = ((*(float *) src) / alpha); dst += 4; src += 4; *(float *) dst = alpha; -- 2.30.2